#pragma once
#include <iostream>
#include <memory>

class A;

class B {
public:
    B() = default;
    ~B() { std::cout << "B is deleted" << std::endl; }
    std::shared_ptr<A> _a;
    // std::weak_ptr<A> _a;
};